From c69fb5ef80b9780fe9add345052aef9ccb5d51f4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Sun, 19 Oct 2025 13:14:46 +0200 Subject: [PATCH] github: improve CI MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit - Remove unneeded CMAKE_SYSTEM_PROCESSOR. - Add summary table with sizes (in bytes) for each arch/variant. - Upload generated binaries as artifacts. - Add OpenWrt formalities. Signed-off-by: Álvaro Fernández Rojas --- .github/workflows/ci.yml | 56 ++++++++++++++++++++++--- .github/workflows/formal.yml | 12 ++++++ .github/workflows/scripts/ci_helpers.sh | 26 ++++++++++++ 3 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/formal.yml create mode 100644 .github/workflows/scripts/ci_helpers.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dd53af8..18eedad 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,15 @@ jobs: - arch: x86_64 gcc: /usr/bin/x86_64-linux-gnu-gcc packages: gcc-x86-64-linux-gnu - + outputs: + size-aarch64-a: ${{ steps.build.outputs.size_aarch64_a }} + size-aarch64-so: ${{ steps.build.outputs.size_aarch64_so }} + size-arm-a: ${{ steps.build.outputs.size_arm_a }} + size-arm-so: ${{ steps.build.outputs.size_arm_so }} + size-mips-a: ${{ steps.build.outputs.size_mips_a }} + size-mips-so: ${{ steps.build.outputs.size_mips_so }} + size-x86_64-a: ${{ steps.build.outputs.size_x86_64_a }} + size-x86_64-so: ${{ steps.build.outputs.size_x86_64_so }} steps: - name: Checkout libnl-tiny uses: actions/checkout@v5 @@ -37,12 +45,48 @@ jobs: run: | mkdir -p ${GITHUB_WORKSPACE}/build - - name: Build libnl-tiny + - id: build + name: Build libnl-tiny + env: + BUILD_DIR: build/libnl-tiny run: | cmake \ - -DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} \ -DCMAKE_C_COMPILER=${{ matrix.gcc }} \ -DCMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/build \ - --install-prefix ${GITHUB_WORKSPACE}/build - make - make install + --install-prefix ${GITHUB_WORKSPACE}/build \ + -B $BUILD_DIR + make -C $BUILD_DIR + make -C $BUILD_DIR install + echo "size_${{ matrix.arch }}_a=$( find $BUILD_DIR -type f -name libnl-tiny.a -printf '%s' )" >> $GITHUB_OUTPUT + echo "size_${{ matrix.arch }}_so=$( find -L $BUILD_DIR -type f -name libnl-tiny.so -printf '%s' )" >> $GITHUB_OUTPUT + + - name: Upload binaries + uses: actions/upload-artifact@v4 + with: + name: libnl-tiny-${{ matrix.arch }}-binaries + path: | + build/libnl-tiny/libnl-tiny.a + build/libnl-tiny/libnl-tiny.so + if-no-files-found: error + + summary: + name: Sizes + needs: [build] + runs-on: ubuntu-latest + steps: + - name: Sizes summary + env: + size_aarch64_a: ${{needs.build.outputs.size-aarch64-a}} + size_aarch64_so: ${{needs.build.outputs.size-aarch64-so}} + size_arm_a: ${{needs.build.outputs.size-arm-a}} + size_arm_so: ${{needs.build.outputs.size-arm-so}} + size_mips_a: ${{needs.build.outputs.size-mips-a}} + size_mips_so: ${{needs.build.outputs.size-mips-so}} + size_x86_64_a: ${{needs.build.outputs.size-x86_64-a}} + size_x86_64_so: ${{needs.build.outputs.size-x86_64-so}} + run: | + echo "### ${GITHUB_WORKFLOW} sizes :floppy_disk:" >> $GITHUB_STEP_SUMMARY + echo "| Variant | aarch64 | arm | mips | x86_64 |" >> $GITHUB_STEP_SUMMARY + echo "| :---: | :---: | :---: | :---: | :---: |" >> $GITHUB_STEP_SUMMARY + echo "| libnl-tiny.a | ${size_aarch64_a} | ${size_arm_a} | ${size_mips_a} | ${size_x86_64_a} |" >> $GITHUB_STEP_SUMMARY + echo "| libnl-tiny.so | ${size_aarch64_so} | ${size_arm_so} | ${size_mips_so} | ${size_x86_64_so} |" >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/formal.yml b/.github/workflows/formal.yml new file mode 100644 index 0000000..081129d --- /dev/null +++ b/.github/workflows/formal.yml @@ -0,0 +1,12 @@ +name: Test Formalities + +on: + pull_request: + +permissions: + contents: read + +jobs: + build: + name: Test Formalities + uses: openwrt/actions-shared-workflows/.github/workflows/formal.yml@main diff --git a/.github/workflows/scripts/ci_helpers.sh b/.github/workflows/scripts/ci_helpers.sh new file mode 100644 index 0000000..2f9daf8 --- /dev/null +++ b/.github/workflows/scripts/ci_helpers.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +color_out() { + printf "\e[0;$1m%s\e[0;0m\n" "$2" +} + +success() { + color_out 32 "$1" +} + +info() { + color_out 36 "$1" +} + +err() { + color_out 31 "$1" +} + +warn() { + color_out 33 "$1" +} + +err_die() { + err "$1" + exit 1 +} -- 2.30.2